package com.black.cat.bean;

/**
 * bean 的自动装配 bean的行为
 *
 * 提供创建bean、自动注入、初始化以及应用bean的后置处理
 */
public interface AutowireCapableBeanFactory extends BeanFactory {


    /**
     * 常量，用于标识外部自动装配功能是否可用。但是此标识不影响正常的（基于注解的等）自动装配功能的使用
     */
    int AUTOWIRE_NO = 0;

    /**
     * 标识按名装配的常量
     */
    int AUTOWIRE_BY_NAME = 1;

    /**
     * 标识按类型自动装配的常量
     */
    int AUTOWIRE_BY_TYPE = 2;

    /**
     * 标识按照贪婪策略匹配出的最符合的构造方法来自动装配的常量
     */
    int AUTOWIRE_CONSTRUCTOR = 3;

    /**
     * 标识自动识别一种装配策略来实现自动装配的常量
     */
    @Deprecated
    int AUTOWIRE_AUTODETECT = 4;



    String ORIGINAL_INSTANCE_SUFFIX = ".ORIGINAL";
}
